package jmine.tec.services.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Parâmetro de 'saída' - parâmetros que estarão disponíveis para outros serviços após a execução do serviço. O campo
 * {@link #propertyName()} define o nome da coluna que contem o nome que a variavel tera na saida.
 */
@Documented
@Target({ ElementType.FIELD, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Output {

    /**
     * Nome da coluna que contem o nome de saida.
     */
    String propertyName();

    /**
     * Se <code>true</code>, o nome dado por {@link #propertyName()} será usado como parâmetro de saída. boolean
     */
    boolean literal() default false;

}
